W32: Don't crash when opacity is set for non-toplevel
authorРуслан Ижбулатов <lrn1986@gmail.com>
Fri, 25 Jul 2014 23:28:31 +0000 (23:28 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Sat, 2 Aug 2014 14:22:22 +0000 (14:22 +0000)
X11 backend doesn't, and for good reason - main code body does not check
that the window it sets opacity for is, in fact, toplevel.
Just silently fail to do anything for non-toplevel windows.

https://bugzilla.gnome.org/show_bug.cgi?id=733769

gdk/win32/gdkwindow-win32.c

index 3d222a812d4033f967ebe7d3b768df78e7c256ca..a8c7fc048ce96d7484a4266b3f7bc80526a00cb0 100644 (file)
@@ -3175,9 +3175,8 @@ gdk_win32_window_set_opacity (GdkWindow *window,
   PFN_SetLayeredWindowAttributes setLayeredWindowAttributes = NULL;
 
   g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (WINDOW_IS_TOPLEVEL (window));
 
-  if (GDK_WINDOW_DESTROYED (window))
+  if (!WINDOW_IS_TOPLEVEL (window) || GDK_WINDOW_DESTROYED (window))
     return;
 
   if (opacity < 0)